package controller

import (
	"image-server/config" // 导入统一响应包
	service "image-server/services"
	"net/http"

	"github.com/gin-gonic/gin"
)

// UserController 用户相关控制器（整合认证与用户信息功能）
type UserController struct {
	userService *service.UserService
	accessID    string // 金山开放平台AccessID
	secretKey   string // 金山开放平台SecretKey
	proxyAddr   string // 代理地址
	wpsAuthURL  string // 金山登录验证接口URL
	wpsUserURL  string // 金山用户信息接口URL
}

// NewUserController 初始化用户控制器（支持传入金山开发者信息）
// 返回：初始化后的UserController指针
func NewUserController() *UserController {
	return &UserController{
		userService: &service.UserService{},
		accessID:    config.Aliyun.AccessKeyID,
		secretKey:   config.Aliyun.AccessKeySecret,
		proxyAddr:   config.WPS.ProxyAddr,
		wpsAuthURL:  "https://account.wps.cn/api/v3/islogin",
		wpsUserURL:  "https://account.wps.cn/api/user/",
	}
}

// Index 首页处理：未登录跳转登录页，已登录跳转相册
// 请求方式：GET
// 功能：根据用户登录状态（通过Cookie判断）跳转到相应页面
func (uc *UserController) Index(c *gin.Context) {
	// 检查用户是否已登录（通过Cookie中的wps_sid判断）
	_, err := c.Cookie("wps_sid")
	if err != nil {
		// 未登录，跳转金山登录页（回调地址为当前系统的登录回调接口）
		loginURL := "https://account.wps.cn/?cb=https%3A%2F%2Fimage.wps.cn"
		c.Redirect(http.StatusFound, loginURL)
		return
	}
	// 已登录，直接跳转相册列表页
	c.Redirect(http.StatusFound, "/albums/list")
}
